Non-volatile solid-state EEPROM memories have become competitive with conventional rotating magnetic disk media for large-scale data storage in applications requiring high speed and/or low power consumption. Such memories have much shorter effective “seek” times and data transfer rates that are as fast or faster than the conventional disk drives. In addition, these memories can withstand significant mechanical shocks and require a fraction of the power of conventional disk drives. The cost of such memories, however, still places limitations on the use of the drives. In addition, such memories are not useable in high radiation environments.
One method for reducing the cost of such memories utilizes memory cells that have more than two storage states. For example, in EEPROM memories, a charge is deposited on a floating gate using tunneling. The charge alters the conductivity of the associated transistor. In a binary memory, the presence or absence of the charge is all that needs to be sensed. In a multi-state memory, each state corresponds to a different amount of charge being transferred to the gate. To read the cell, the conductivity of the cell must be measured to differentiate between the possible states. Since each cell now stores multiple bits of data, the cost of the memory is substantially reduced for any given memory size.
Unfortunately, the time to write such a cell is significantly greater than the time to write a binary cell. Furthermore, the maximum number of states that can be stored in a memory cell is limited. These problems can be partially overcome by increasing the number of sense amplifiers in the memory so that a large number of cells are read or written simultaneously. However, this approach increases the cost of the memory and still imposes an initial read time for a “track” that is longer than the read times for reading out individual segments of the track once the track has been loaded.
When data is to be rewritten in a record, the entire record must be erased and then the new data entered. Since the erase time is long compared to the write time, data is rewritten to unused records that have been erased. The records that were abandoned in a prior rewrite are then erased in the background. This “garbage collection” procedure further complicates the memories and increases the cost. Finally, the number of times a cell can be erased and rewritten is limited, and hence, the lifetime of the memory can be a problem in applications that require a large number of cells to be erased and rewritten a large number of times.